home *** CD-ROM | disk | FTP | other *** search
- /*
- File: QD3DTransform.h
-
- Contains: Q3Transform routines
-
- Version: Technology: Quickdraw 3D 1.5.4
- Release: Universal Interfaces 3.2
-
- Copyright: © 1995-1998 by Apple Computer, Inc., all rights reserved.
-
- Bugs?: For bug reports, consult the following page on
- the World Wide Web:
-
- http://developer.apple.com/bugreporter/
-
- */
- #ifndef __QD3DTRANSFORM__
- #define __QD3DTRANSFORM__
-
- #ifndef __QD3D__
- #include <QD3D.h>
- #endif
-
-
-
- #if PRAGMA_ONCE
- #pragma once
- #endif
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #if PRAGMA_IMPORT
- #pragma import on
- #endif
-
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=power
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(push, 2)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack(2)
- #endif
-
- #if PRAGMA_ENUM_ALWAYSINT
- #pragma enumsalwaysint on
- #elif PRAGMA_ENUM_OPTIONS
- #pragma option enum=int
- #elif PRAGMA_ENUM_PACK
- #if __option(pack_enums)
- #define PRAGMA_ENUM_PACK__QD3DTRANSFORM__
- #endif
- #pragma options(!pack_enums)
- #endif
-
- /******************************************************************************
- ** **
- ** Transform Routines **
- ** **
- *****************************************************************************/
- EXTERN_API_C( TQ3ObjectType )
- Q3Transform_GetType (TQ3TransformObject transform);
-
- EXTERN_API_C( TQ3Matrix4x4 *)
- Q3Transform_GetMatrix (TQ3TransformObject transform,
- TQ3Matrix4x4 * matrix);
-
- EXTERN_API_C( TQ3Status )
- Q3Transform_Submit (TQ3TransformObject transform,
- TQ3ViewObject view);
-
-
- /******************************************************************************
- ** **
- ** MatrixTransform Routines **
- ** **
- *****************************************************************************/
- EXTERN_API_C( TQ3TransformObject )
- Q3MatrixTransform_New (const TQ3Matrix4x4 * matrix);
-
- EXTERN_API_C( TQ3Status )
- Q3MatrixTransform_Submit (const TQ3Matrix4x4 * matrix,
- TQ3ViewObject view);
-
- EXTERN_API_C( TQ3Status )
- Q3MatrixTransform_Set (TQ3TransformObject transform,
- const TQ3Matrix4x4 * matrix);
-
- EXTERN_API_C( TQ3Status )
- Q3MatrixTransform_Get (TQ3TransformObject transform,
- TQ3Matrix4x4 * matrix);
-
-
- /******************************************************************************
- ** **
- ** RotateTransform Data **
- ** **
- *****************************************************************************/
-
- struct TQ3RotateTransformData {
- TQ3Axis axis;
- float radians;
- };
- typedef struct TQ3RotateTransformData TQ3RotateTransformData;
- /******************************************************************************
- ** **
- ** RotateTransform Routines **
- ** **
- *****************************************************************************/
- EXTERN_API_C( TQ3TransformObject )
- Q3RotateTransform_New (const TQ3RotateTransformData * data);
-
-
- EXTERN_API_C( TQ3Status )
- Q3RotateTransform_Submit (const TQ3RotateTransformData * data,
- TQ3ViewObject view);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateTransform_SetData (TQ3TransformObject transform,
- const TQ3RotateTransformData * data);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateTransform_GetData (TQ3TransformObject transform,
- TQ3RotateTransformData * data);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateTransform_SetAxis (TQ3TransformObject transform,
- TQ3Axis axis);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateTransform_SetAngle (TQ3TransformObject transform,
- float radians);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateTransform_GetAxis (TQ3TransformObject renderable,
- TQ3Axis * axis);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateTransform_GetAngle (TQ3TransformObject transform,
- float * radians);
-
-
- /******************************************************************************
- ** **
- ** RotateAboutPointTransform Data **
- ** **
- *****************************************************************************/
-
- struct TQ3RotateAboutPointTransformData {
- TQ3Axis axis;
- float radians;
- TQ3Point3D about;
- };
- typedef struct TQ3RotateAboutPointTransformData TQ3RotateAboutPointTransformData;
- /******************************************************************************
- ** **
- ** RotateAboutPointTransform Routines **
- ** **
- *****************************************************************************/
- EXTERN_API_C( TQ3TransformObject )
- Q3RotateAboutPointTransform_New (const TQ3RotateAboutPointTransformData * data);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateAboutPointTransform_Submit (const TQ3RotateAboutPointTransformData * data,
- TQ3ViewObject view);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateAboutPointTransform_SetData (TQ3TransformObject transform,
- const TQ3RotateAboutPointTransformData * data);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateAboutPointTransform_GetData (TQ3TransformObject transform,
- TQ3RotateAboutPointTransformData * data);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateAboutPointTransform_SetAxis (TQ3TransformObject transform,
- TQ3Axis axis);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateAboutPointTransform_GetAxis (TQ3TransformObject transform,
- TQ3Axis * axis);
-
-
- EXTERN_API_C( TQ3Status )
- Q3RotateAboutPointTransform_SetAngle (TQ3TransformObject transform,
- float radians);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateAboutPointTransform_GetAngle (TQ3TransformObject transform,
- float * radians);
-
-
- EXTERN_API_C( TQ3Status )
- Q3RotateAboutPointTransform_SetAboutPoint (TQ3TransformObject transform,
- const TQ3Point3D * about);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateAboutPointTransform_GetAboutPoint (TQ3TransformObject transform,
- TQ3Point3D * about);
-
-
- /******************************************************************************
- ** **
- ** RotateAboutAxisTransform Data **
- ** **
- *****************************************************************************/
-
- struct TQ3RotateAboutAxisTransformData {
- TQ3Point3D origin;
- TQ3Vector3D orientation;
- float radians;
- };
- typedef struct TQ3RotateAboutAxisTransformData TQ3RotateAboutAxisTransformData;
- /******************************************************************************
- ** **
- ** RotateAboutAxisTransform Routines **
- ** **
- *****************************************************************************/
- EXTERN_API_C( TQ3TransformObject )
- Q3RotateAboutAxisTransform_New (const TQ3RotateAboutAxisTransformData * data);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateAboutAxisTransform_Submit (const TQ3RotateAboutAxisTransformData * data,
- TQ3ViewObject view);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateAboutAxisTransform_SetData (TQ3TransformObject transform,
- const TQ3RotateAboutAxisTransformData * data);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateAboutAxisTransform_GetData (TQ3TransformObject transform,
- TQ3RotateAboutAxisTransformData * data);
-
-
- EXTERN_API_C( TQ3Status )
- Q3RotateAboutAxisTransform_SetOrientation (TQ3TransformObject transform,
- const TQ3Vector3D * axis);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateAboutAxisTransform_GetOrientation (TQ3TransformObject transform,
- TQ3Vector3D * axis);
-
-
- EXTERN_API_C( TQ3Status )
- Q3RotateAboutAxisTransform_SetAngle (TQ3TransformObject transform,
- float radians);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateAboutAxisTransform_GetAngle (TQ3TransformObject transform,
- float * radians);
-
-
- EXTERN_API_C( TQ3Status )
- Q3RotateAboutAxisTransform_SetOrigin (TQ3TransformObject transform,
- const TQ3Point3D * origin);
-
- EXTERN_API_C( TQ3Status )
- Q3RotateAboutAxisTransform_GetOrigin (TQ3TransformObject transform,
- TQ3Point3D * origin);
-
-
- /******************************************************************************
- ** **
- ** ScaleTransform Routines **
- ** **
- *****************************************************************************/
- EXTERN_API_C( TQ3TransformObject )
- Q3ScaleTransform_New (const TQ3Vector3D * scale);
-
- EXTERN_API_C( TQ3Status )
- Q3ScaleTransform_Submit (const TQ3Vector3D * scale,
- TQ3ViewObject view);
-
- EXTERN_API_C( TQ3Status )
- Q3ScaleTransform_Set (TQ3TransformObject transform,
- const TQ3Vector3D * scale);
-
- EXTERN_API_C( TQ3Status )
- Q3ScaleTransform_Get (TQ3TransformObject transform,
- TQ3Vector3D * scale);
-
-
- /******************************************************************************
- ** **
- ** TranslateTransform Routines **
- ** **
- *****************************************************************************/
- EXTERN_API_C( TQ3TransformObject )
- Q3TranslateTransform_New (const TQ3Vector3D * translate);
-
- EXTERN_API_C( TQ3Status )
- Q3TranslateTransform_Submit (const TQ3Vector3D * translate,
- TQ3ViewObject view);
-
- EXTERN_API_C( TQ3Status )
- Q3TranslateTransform_Set (TQ3TransformObject transform,
- const TQ3Vector3D * translate);
-
- EXTERN_API_C( TQ3Status )
- Q3TranslateTransform_Get (TQ3TransformObject transform,
- TQ3Vector3D * translate);
-
- /******************************************************************************
- ** **
- ** QuaternionTransform Routines **
- ** **
- *****************************************************************************/
- EXTERN_API_C( TQ3TransformObject )
- Q3QuaternionTransform_New (const TQ3Quaternion * quaternion);
-
- EXTERN_API_C( TQ3Status )
- Q3QuaternionTransform_Submit (const TQ3Quaternion * quaternion,
- TQ3ViewObject view);
-
- EXTERN_API_C( TQ3Status )
- Q3QuaternionTransform_Set (TQ3TransformObject transform,
- const TQ3Quaternion * quaternion);
-
- EXTERN_API_C( TQ3Status )
- Q3QuaternionTransform_Get (TQ3TransformObject transform,
- TQ3Quaternion * quaternion);
-
-
- /******************************************************************************
- ** **
- ** ResetTransform Routines **
- ** **
- *****************************************************************************/
- EXTERN_API_C( TQ3TransformObject )
- Q3ResetTransform_New (void);
-
- EXTERN_API_C( TQ3Status )
- Q3ResetTransform_Submit (TQ3ViewObject view);
-
-
-
-
-
- #if PRAGMA_ENUM_ALWAYSINT
- #pragma enumsalwaysint reset
- #elif PRAGMA_ENUM_OPTIONS
- #pragma option enum=reset
- #elif defined(PRAGMA_ENUM_PACK__QD3DTRANSFORM__)
- #pragma options(pack_enums)
- #endif
-
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=reset
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(pop)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack()
- #endif
-
- #ifdef PRAGMA_IMPORT_OFF
- #pragma import off
- #elif PRAGMA_IMPORT
- #pragma import reset
- #endif
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif /* __QD3DTRANSFORM__ */
-
-